package com.sdweizan.sdk.bytedance.bean.payment.general;

import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class BdGeneralOrderDataRequest {

  /** #require * */
  private List<Sku> skuList;

  /** #require 外部订单号* */
  private String outOrderNo;

  /** 订单总金额 单位：分* */
  private Long totalAmount;

  /** 支付超时时间，单位秒，例如 300 表示 300 秒后过期；不传或传 0 会使用默认值 300，不能超过48小时。* */
  private Long payExpireSeconds;

  /** 支付结果通知地址，必须是 HTTPS 类型，传入后该笔订单将通知到此地址。* */
  private String payNotifyUrl;

  /** 开发者自定义收款商户号* */
  private String merchantUid;

  /** 订单详情页* */
  private BdGeneralPageSchema orderEntrySchema;

  /** 屏蔽的支付方式，当开发者没有进件某个支付渠道，可在下单时屏蔽对应的支付方式。如：[1, 2]表示屏蔽微信和支付宝 枚举说明： 1-微信 2-支付宝* */
  private List<Integer> limitPayWayList;

  /** #require 订单详情页* */
  @Data
  @Builder
  @NoArgsConstructor
  @AllArgsConstructor
  public static class Sku {
    /** #require 外部商品id，如：号卡商品id、会员充值套餐id、某类服务id、付费工具id等* */
    private String skuId;

    private Long price;
    private Integer quantity;
    private String title;

    /** 商品图片链接，长度 <= 512 字节 注意：目前只支持传入一项* */
    private List<String> imageList;

    /** 商品类型->BdProductTypeEnum* */
    private Integer type;

    /** 交易规则标签组 -> BdProductTagGroupEnum* */
    private String tagGroupId;

    /** 商品详情链接* */
    private BdGeneralPageSchema entrySchema;
  }
}
